package com.qf.scms.service;

import com.qf.scms.common.PageVO;
import com.qf.scms.entity.Course;
import com.qf.scms.entity.CourseExcel;
import com.qf.scms.param.CourseParam;
import com.qf.scms.vo.CourseVO;

import java.util.List;

/**
 * (Course)表服务接口
 *
 * @author makejava
 * @since 2025-06-25 21:17:51
 */
public interface CourseService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    Course queryById(Integer id);

    /**
     * 分页查询
     * @param courseParam 分页参数
     * @return 列表
     */
    PageVO<CourseVO> queryByPage(CourseParam courseParam);

    /**
     * 新增数据
     *
     * @param course 实例对象
     * @return 实例对象
     */
    Integer insert(Course course);

    /**
     * 修改数据
     *
     * @param course 实例对象
     * @return 修改是否成功
     */
    Integer update(Course course);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Integer id);

    /**
     * 批量删除
     * @param ids ids
     * @return 是否成功
     */
    boolean deleteBatch(List<Integer> ids);

    /**
     * 批量导入
     * @param cachedDataList 缓存数据
     */
    Integer insertBatchCourse(List<CourseExcel> cachedDataList);

    /**
     * 查询所有课程
     * @return 课程列表
     */
    List<CourseVO> selectAllCourseVO();

}
